#coding:utf-8
import sys
sys.path.append("..")

from MysqlCon import MysqlCon
import time


class BrandYS(object):
    """
    品牌-赢商-1228数据的导入

    1、读取文件数据
    2、写入库表
    """

    #多行插入
    def insert_many(self, connect, cursor, insert_data):
        # 获取数据，写入数据库
        insert_sql = """
        insert into ori_brand_info_ys_20201228(
            platform, url_id, brand_name, belong_group, is_chain, first_format, secondary_format, found_time, per_price, mall_num, area_demand, coop_term, shop_method, brand_overview, brand_positioning, contact, expand_plan, expan_status, expan_city, intention_floor, floor_height_demand, load_bearing_demand, column_distance_demand, width_demand, depth_demand, other_property_demand, electricity, water_supply, drain, oil, sewage, gas, flue_demand, facility, building_structure, is_frontage, preferred_property, consumer_class, consumer_characteristics, other_demand, brand_grade, operating_characteristics, new_brand
            ) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
        """
        connect.ping(reconnect = True)

        # 批量插入
        try:
            res = cursor.executemany(insert_sql, insert_data)
            print("res = ", res)
            # 提交，不进行提交无法保存到数据库
            connect.commit()
        except Exception as e:
            print(e)
            connect.rollback()
        #finally:
        #connect.close()

        return True



if __name__ == "__main__":

    # 获取数据库连接
    mysql_con = MysqlCon()
    connect_odsdb, cursor_odsdb = mysql_con.con_odsdb()

    #记录执行开始时间
    str_time = int(time.time())

    #实例化类
    brand = BrandYS()

    # 读取原文件
    with open('D:\\usr\\EJU\\数据部门\\大数据系统\\商业客户数据部\\数据迁移\\待入库文件20210111\\品牌-赢商-1228.txt','r',encoding='utf-8') as f:
        lines = f.readlines()
        #print(text)
    #跳过第一行表头
    header = lines.pop(0)
    print(header)

    maxRow = len(lines)
    print("总记录数", maxRow)

    row = 0;
    insertDataList = []
    for line in lines:
        #print(line)
        #分解列值
        cols = line.split("\t")
        #平台	品牌ID	品牌名称	所属集团	是否连锁品牌	一级业态	二级业态	创立时间	人均消费/客单价	已进驻购物中心	面积需求	合作期限	开店方式	品牌概况	品牌定位	联系方式	今年计划拓展	拓展状态	拓展城市	意向楼层	层高要求	承重要求	柱距要求	面宽要求	进深要求	其他物业要求	供电	供水	排水	排油	排污	燃气	烟道	硬件设施	建筑结构	临街要求	首选物业	消费阶层	客户特征	其他要求	品牌档次	经营特色	新兴品牌
        rowData = [cols[0], cols[1], cols[2], cols[3], cols[4], cols[5], cols[6], cols[7], cols[8], cols[9], cols[10], cols[11], cols[12], cols[13], cols[14], cols[15], cols[16], cols[17], cols[18], cols[19], cols[20], cols[21], cols[22], cols[23], cols[24], cols[25], cols[26], cols[27], cols[28], cols[29], cols[30], cols[31], cols[32], cols[33], cols[34], cols[35], cols[36], cols[37], cols[38], cols[39], cols[40], cols[41], cols[42]]
        insertDataList.append(rowData)
        row = row + 1
        if row > 0 and (row % 1000 == 0 or row == maxRow):
            print(row)
            # 批量写入1000条数据
            brand.insert_many(connect_odsdb, cursor_odsdb, insertDataList)
            insertDataList.clear()

    connect_odsdb.close()

    end_time = int(time.time())
    print("程序执行时间（秒）：", end_time - str_time)
